package com.ruoyi.system.service.wechat;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.entity.wechat.WechatUser;
import com.ruoyi.system.domain.wechat.request.vo.*;
import com.ruoyi.system.domain.wechat.response.WechatUserInfoVO;
import com.ruoyi.system.domain.wechat.response.WechatUserListVO;

import java.util.List;

/**
 * 微信小程序用户
 *
 * @author jiexiang.sun/Jason
 * @version 1.0.0
 * @create 2022-03-03 19:40
 **/
public interface IWechatUserService extends IService<WechatUser> {

    /**
     * 获取用户列表
     *
     * @param params
     * @return
     */
    List<WechatUserListVO> list(FilterForWechatUserListVO params);

    /**
     * 获取用户信息
     *
     * @param userId
     * @return
     */
    WechatUserInfoVO info(Long userId);

    /**
     * 用户添加
     *
     * @param params
     * @return
     */
    boolean create(CreateForWechatUserVO params);

    /**
     * 修改用户
     *
     * @param params
     * @return
     */
    boolean modify(ModifyForWechatUserVO params);

    /**
     * 账号注册
     *
     * @param params
     * @return
     */
    boolean register(WechatUserRegisterVO params);

    /**
     * 账号密码找回
     *
     * @param params
     */
    boolean modifyPassword(WechatUserForgetPasswordVO params);

    /**
     * 账号审核
     *
     * @param param
     * @return
     */
    boolean audit(ModifyForWechatUserVO param);

    /**
     * 账号删除
     *
     * @param userIds
     * @return
     */
    boolean remove(Long[] userIds);

    /**
     * 拒绝删除用户
     *
     * @param userId
     * @return
     */
    boolean rejectDelete(Long userId);

    /**
     * 申请删除用户
     *
     * @param userId
     * @return
     */
    boolean applyDelete(Long userId);
}
